namespace LiJ.Pay.WeiXin.Pay.Mos
{
	/// <summary>
	///   下单请求接口基类
	/// </summary>
	public class WxAddPayOrderBaseReq : WxPayBaseReq
	{
		/// <summary>   
		///    设备号 可空 String(32) 自定义参数，可以为终端设备号(门店号或收银设备ID)，PC网页或公众号内支付可以传"WEB"
		/// </summary>  
		public string device_info
		{
			get;
			set;
		}

		/// <summary>   
		///    商品描述 必填 String(128) 商品简单描述，该字段请按照规范传递，具体请见参数规定 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_2
		/// <para>商品描述交易字段格式根据不同的应用场景按照以下格式：
		///             （1）PC网站——传入浏览器打开的网站主页title名-实际商品名称，例如：腾讯充值中心-QQ会员充值；
		///             （2） 公众号——传入公众号名称-实际商品名称，例如：腾讯形象店- image-QQ公仔；
		///             （3） H5——应用在浏览器网页上的场景，传入浏览器打开的移动网页的主页title名-实际商品名称，例如：腾讯充值中心-QQ会员充值；
		///             （4） 线下门店——门店品牌名-城市分店名-实际商品名称，例如： image形象店-深圳腾大- QQ公仔）
		///             （5） APP——需传入应用市场上的APP名字-实际商品名称，天天爱消除-游戏充值</para>
		/// </summary>  
		public string body
		{
			get;
			set;
		}

		/// <summary>   
		///    附加数据 可空 String(127) 附加数据，在查询API和支付通知中原样返回，可作为自定义参数使用。
		/// </summary>  
		public string attach
		{
			get;
			set;
		}

		/// <summary>   
		///    商户订单号 必填 String(32) 商户系统内部订单号，要求32个字符内、且在同一个商户号下唯一。 详见商户订单号
		/// </summary>  
		public string out_trade_no
		{
			get;
			set;
		}

		/// <summary>   
		///    标价币种 可空 String(16) 符合ISO 4217标准的三位字母代码，默认人民币：CNY，详细列表请参见货币类型
		/// </summary>  
		public string fee_type
		{
			get;
			set;
		} = "CNY";


		/// <summary>   
		///    标价金额 必填 Int 订单总金额，单位为分，详见支付金额
		/// </summary>  
		public int total_fee
		{
			get;
			set;
		}

		/// <summary>   
		///    终端IP 必填 String(16) APP和网页支付提交用户端ip，Native支付填调用微信支付API的机器IP。
		/// </summary>  
		public string spbill_create_ip
		{
			get;
			set;
		}

		/// <summary>   
		/// 订单优惠标记 可空 String(32) 商品标记，使用代金券或立减优惠功能时需要的参数，说明详见代金券或立减优惠
		/// </summary>  
		public string goods_tag
		{
			get;
			set;
		}

		/// <summary>
		/// 商品条目详情: 请参照具体的JSON格式
		/// </summary>
		public string detail
		{
			get;
			set;
		}

		/// <summary>   
		///    指定支付方式 可空 String(32) 上传此参数no_credit--可限制用户不能使用信用卡支付
		/// </summary>  
		public string limit_pay
		{
			get;
			set;
		}

		/// <summary>
		///  设置需要需要运算的字典值
		/// </summary>
		protected override void SetSignDics()
		{
			base.SetDicItem("device_info", this.device_info);
			base.SetDicItem("body", this.body);
			base.SetDicItem("attach", this.attach);
			base.SetDicItem("out_trade_no", this.out_trade_no);
			base.SetDicItem("fee_type", this.fee_type);
			base.SetDicItem("total_fee", this.total_fee);
			base.SetDicItem("spbill_create_ip", this.spbill_create_ip);
			base.SetDicItem("goods_tag", this.goods_tag);
			base.SetDicItem("detail", this.detail);
			base.SetDicItem("limit_pay", this.limit_pay);
		}
	}
}
